package logica.controladores{
	import	flash.display.*;
	import	flash.events.*;
	import	flash.filters.*;
	import	logica.vistas.*;
	import	mx.controls.*;
	//import	com.jalheart.utils.DatosGraficos;
	public	class	CFicha extends EventDispatcher implements Controlador{

		public	static	const	AL_SELECCIONAR:String="alSeleccionar";
		public	static	const	AL_DESELECCIONAR:String="alDeseleccionar";
		
		private	const	FILTRO_NORMAL		:	Array	=	[];
		private	const	FILTRO_SELECCIONADO	:	Array	=	[new GlowFilter(0xffaaaa),new BlurFilter(1,2)];
		
		private	var	_seleccionada	:	Boolean	=	false;
		private	var	_seleccionable	:	Boolean	=	true;	
		private	var	_vista			:	VFicha	=	null;
		private	var	_configuracion	:	XML		=	null;
		public	function		CFicha(laVista:VFicha):void
		{
			vista	=	laVista
			vista.addEventListener("creationComplete",vistaCreada);
		}
		private	function	vistaCreada(e:Event):void
		{
			if(_configuracion!=null)
				vista.imagen.source	=	configuracion.@imagen;
		}
		public	function	set	configuracion(cfg:XML):void
		{
			_configuracion		=	cfg;
			//Alert.show(String(vista));
			if(vista.imagen!=null)
				vista.imagen.source	=	configuracion.@imagen;
		}
		public	function	get	configuracion():XML
		{
			return	_configuracion;
		}
		public	function	seleccionar():void
		{
			this.vista.filters	=	FILTRO_SELECCIONADO;
			_seleccionada	=	true;
			this.dispatchEvent(new Event(AL_SELECCIONAR));
		}
		public	function	deseleccionar():void
		{
			this.vista.filters			=	FILTRO_NORMAL;
			_seleccionada	=	false;
			this.dispatchEvent(new Event(AL_DESELECCIONAR));
		}
		private	function	alEscoger(e:Event):void
		{
			if(seleccionable)
				seleccionada?deseleccionar():seleccionar();
		}
		public	function	get	valor():String
		{
			return	_configuracion.@valor;
		}
		public	function	get	seleccionada():Boolean
		{
			return	_seleccionada;
		}
		public	function	set	seleccionable(valor:Boolean):void
		{
			_seleccionable	=	valor;
		}
		public	function	get	seleccionable():Boolean
		{
			return	_seleccionable;
		}
		public	function	set	vista(laVista:VFicha):void
		{
			if(_vista!=null)
				_vista.removeEventListener("click",alEscoger);
			_vista	=	laVista;
			this.vista.addEventListener("click",alEscoger);
		}
		public	function	get	vista():VFicha
		{
			return	_vista;
		}
	}
}	